/******************************************************
Cours:   LOG121
Session: A2013
Groupe:  
Projet: Laboratoire #3
etudiant(e)s: Simon Castro
			  Fredy Alexander 
			  Renaud Vincent
              
              
Professeur : 
Nom du fichier: CollectionJoueur.java
Date cree: 2013-10-20
Date dern. modif. 2013-11-01
*******************************************************
Historique des modifications
*******************************************************
2013-10-20 Version genere
2013-11-01 Implementation de la collection avec iterateur
*******************************************************/ 

package cadricielJeuDe;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Iterator;

/**
 * Une collection d'objets joueurs.
 * @author Renaud
 * @date 2013-11-01
 */
public class CollectionJoueurs {

	private ArrayList<Joueur> collectionJoueurs;
	private int taille;
	
	/**
	 * Constructeur
	 */
	public CollectionJoueurs(){
		this.collectionJoueurs = new ArrayList<Joueur>();
		taille=0;
	}

	/**
	 * Methode ajoutant le joueur en parametre a la collection.
	 * @param joueur
	 */
	public void ajouterJoueur(Joueur joueur) {
		collectionJoueurs.add(joueur);
		taille++;
	}

	/**
	 * Methode ajoutant un iterateur a la collection
	 * @return l'iterateur
	 */
	public Iterator<Joueur> creerIterateur() {
		return collectionJoueurs.iterator();
		
	}
	
	/**
	 * Methode renvoyant le joueur a l'index en parametre
	 * @return L'objet joueur desire
	 */
	public Joueur getJoueurAt(int index) {
		Object[] listeJoueurs = collectionJoueurs.toArray();
		return (Joueur) listeJoueurs[index];
	}
	
	/**
	 * Methode permettant d'obtenir les scores des joueurs dans un tableau
	 * @return le tableau des scores
	 */
	public int[] getToutScore() {
		int[] tableauScores = new int[collectionJoueurs.size()];
		
		Iterator<Joueur> iterateurJoueurs = creerIterateur();
    	while(iterateurJoueurs.hasNext()) {
    		tableauScores[iterateurJoueurs.hashCode()] = 
    				iterateurJoueurs.next().getScore();
    	}
		
		return tableauScores;
		

	}
	
	/**
	 * Retourne la taille de la collection
	 * 
	 * @return taille;
	 */
	public int getTaille(){
		return taille;
	}
	
	
}